<?php
require_once( ABSPATH . WPINC . '/registration.php');

## xuly gui thong tin qua email
function send_mails_km()
{
	//echo '<script> alert(" auto send mails");</script>';
	
	global $wpdb;	
	$mails = $wpdb->get_results("SELECT * 
								 FROM us_newsletter 
								 WHERE type = 0
								 AND state =1 
								 ");	
	foreach ($mails as $mail) 
 	{        	
      	db_newsletter_via_email($user_info->user_email);
 	}
}

function send_mails()
{
	//echo '<script> alert(" auto send mails");</script>';
	global $wpdb;	
	$mails = $wpdb->get_results("SELECT * 
								 FROM us_newsletter 
								 WHERE type = 1
								 AND state =1 
								 ");	
	foreach ($mails as $mail) 
 	{        	
      	db_newsletter_via_email($user_info->user_email);
 	}
}

## xu ly template gui mai
function db_newsletter_via_email($email)
{
	global $post;	
	     $to=$email;
	     $subject="Tin mới cập nhật ".$_SERVER['HTTP_HOST'];
	     $message="<html><body>
	     	<ul>
	     	<h2>Tin mới cập nhật ".$_SERVER['HTTP_HOST']."  </h2>
	     	<li> <h3>Tin mới : <a href='".get_permalink()."'>".get_the_title()."</a></h3></li><br/>
	    	<li> Truy cập <a href='".get_bloginfo('home')."'>".$_SERVER['HTTP_HOST']."</a> để xem thêm thông tin!</li>		    	
	    	<li> Vui lòng không trả lời thư này. đây là mail tự động gửi tới bạn khi có tin tức mới cập nhật tại muahangus.vn </li>
	    	<li> Cảm ơn!</li>
	    	</ul>
	     </body></html>";
	     
		 $headers = array(
	        'From: '.get_bloginfo('name').' <'.get_option('admin_email').'>',
	        "Content-Type: text/html"
	    );
	     $h = implode("\r\n",$headers) . "\r\n";
	
		 wp_mail($to, $subject, $message,$h);	
      
}

## dang ky nhan tin qua email

function db_subscriber_news($email,$type)
{			
		## TH1 email da ton tai
		if(db_check_email_newsletter($email))
		{			
			return '<script>alert("Cảm ơn! Địa chỉ email đã được dùng bởi một người khác \n Bạn vui lòng đăng ký bằng email khác.")</script>';
		}		
		else   ## TH2 email chưa tồn tại -> thêm mới user 
		{				
			## tao chuoi ma coupon random 
			global $wpdb;
			$table = $wpdb->prefix."newsletter";
			$id = db_get_id_for_table($table);
			$ran =null;	
			if($id<10){
				$ran ="mus";
				$id =$ran.$id;
			}
			if($id >= 10 && $id<100){
				$ran ="us";
				$id =$ran.$id;
			}
			$secretPass = '210486';
			$encodeThis = $id;	
			$encoded = db_Encode($encodeThis,$secretPass);  	//encode data 
			//$decoded = db_Encode(hex2bin($encoded),$secretPass);		// decode data
						
			//echo '<br /><br />Encoded String: '.$encoded;
			//echo '<br />Decoded String: '.$decoded;					
			
			$day_date = gmdate('Y-m-d H:s:i',time()+252000);		
			$n_email = $email;
			$n_code  = $encoded;
			$n_type  = $type;
			$n_date  = $day_date;
			$n_state = 1;
			$data = array(				
				'email'		=> $n_email,
				'code'		=> $n_code,
				'type'		=> $n_type,
				'date'		=> $n_date,
				'state'		=> $n_state	
			);
			$run=$wpdb->insert($table,$data);
			if($run)
			{
				$subject = 'Đăng ký nhận tin từ '.$_SERVER['HTTP_HOST'];
				$message = '
					<html>
					<head>
					  <title>Đăng ký nhận tin</title>
					</head>
					<body>
					  <p><h1>Thông tin tài khoản</h1></p>
					  <p>Cảm ơn bạn ! Bạn vừa đăng ký nhận tin mới từ : '.$_SERVER['HTTP_HOST'].'</p>
					  <h2>Thông tin của bạn</h2>
					  <ul>																		
						<li>Email đăng ký		 : '.$n_email.'</li>																	
						<li>Ngày đăng ký  		 : '.$n_date.'</li>
						<li>Mã đăng ký nhận tin  : '.$n_code.'</li>								  	
					  </ul>
					  <p>Vui lòng không xóa thư này ,trong trường hợp bạn muốn hủy đăng ký nhận tin.</p>
					  <p>Để hủy email đã đăng ký này! Bạn có thể truy cập vào địa chỉ sau: <a href="'.get_bloginfo('home').'/unsubscriber?code='.$n_code.'&email='.$n_email.'">Unsubscriber</a>.</p>
					  <p>Mọi thông tin cần giúp đỡ xin liên hệ: '.db_get_management_email().'</p>
					</body>
					</html>
				';									
				
				$headers = array(
	        	'From: '.get_option('admin_email').' <'.get_bloginfo('admin_email').'>',
	        	"Content-Type: text/html"
	  			);
	  			$h = implode("\r\n",$headers) . "\r\n";
				if(wp_mail($email, $subject, $message,$h))			
					return "<script>alert('Chúc mừng bạn đã đăng ký nhận tin thành công!')</script>";
				else 
					return "<script>alert('Cảm ơn bạn,Gửi mail thất bại ,Vui lòng thử lại sau.')</script>";
			}
			else 
			{
				return "<script>alert('Cảm ơn bạn,Đăng ký nhận tin thất bại ,Vui lòng thử lại sau.')</script>";			
			}
		}
}	

## Trich user_login tu email
function db_get_user_login($email)
{
	$email = trim($email);   ## Loại bỏ các khoảng trắng thừa
	$post_cut = stripos($email, "@");
	$user_login = substr($email,0,$post_cut);
	return trim($user_login);
}

## ma hoa user code
/*
 * mã hóa theo ID --> tạo subscrib code --> ứng dụng khi un-subscrib
 */

## huy dang ky nhan tin
function db_check_before_unsubscriber($unemail,$code)
{
	global $wpdb;
	$table = $wpdb->prefix."newsletter";	
	$meta_value = $wpdb->get_results("SELECT * FROM us_newsletter WHERE email='.$unemail.' AND code='.$code.' ");
	if($meta_value)
	{
		return $meta_value[0]->ID;
	}
	else 
	{
		return FALSE;
	}	
}

//add_action('init','db_unsubscriber');
function db_unsubscriber($unemail,$code,$prefix)
{
	global $wpdb;	
	$user_id = db_check_before_unsubscriber($unemail,$code);	
	if($user_id)
	{
		$wpdb->query("DELETE FROM {$prefix}_usermeta WHERE user_id = $user_id");
		$wpdb->query("DELETE FROM {$prefix}_users WHERE ID = $user_id");		
		//echo "<script>alert('Đã hủy nhận tin qua Email')</script>";
		return '<script> alert("Canceled by Email Newsletter")</script>';
	}
	else 
	{
		return 'Email or code not valid ,please check again';
	}
}

// muahangus.vn
//add_action('init','db_unsubscriber');
function db_unsubscriber_muahangus($unemail,$code)
{
	global $wpdb;	
	$table = $wpdb->prefix . "newsletter";
	$user_id = db_check_before_unsubscriber($unemail, $code);
	if($user_id)
	{
		$wpdb->query("UPDATE $table
						  SET state = 0
						  WHERE ID = ".$user_id." 
			");
		return 1;
	}	
	else 
	{
		return "Không tìm thấy dữ liệu yêu cầu. vui lòng kiểm tra lại hoặc <br/>
		liên hệ với chúng tôi:".get_option("admin_email");		
	}
}

function db_reset_code($email)
{
		global $wpdb;
		$user_email = $email;
		$user_login = esc_attr(db_get_user_login($email));
		$user_id = get_userdatabylogin($user_login);
		// echo $user_id->ID;
		$meta_value = $wpdb->get_results("SELECT meta_value FROM $wpdb->usermeta WHERE $wpdb->usermeta.user_id={$user_id->ID} AND $wpdb->usermeta.meta_key = 'wp_subscrib_active_code'");
		
		$meta_code='';
		foreach ($meta_value as $value) 
		{
			$meta_code = $value->meta_value;
		}
		//print_r($meta_value->$meta_value);
		
		$meta_value = trim($meta_code);	
		return $meta_value;
}

function db_send_mail_reset($email)
{
	if(!email_exists($email))
	{
		echo 'Email does not exist !';
	}
	else {
		$code = db_reset_code($email);
					// Xử lý mail đăng ký nhận tin
						$day_date = date('d-m-Y');
						$subject = 'Reset Info at: '.$_SERVER['HTTP_HOST'];
						$message = '
							<html>
							<head>
							  <title>Lost registration code</title>
							</head>
							<body>
							  <p><h1>Update your subscription </h1></p>
							  <p>Thanks for subscription at: '.$_SERVER['HTTP_HOST'].'</p>
							  <h2>Update your code!</h2>
							  <ul>
								<li>Username		: '.db_get_user_login($email).'</li>												
								<li>Email 		: '.$email.'</li>							
								<li>Your code: '.$code.'</li>								  	
							  </ul>
							   <p>To Unsubscriber! You Access to <a href="'.get_bloginfo('home').'/unsubscriber/">Unsubscriber</a>.</p>
							</body>
							</html>
						';									
						
						$headers = array(
			        	'From: '.get_bloginfo('name').' <'.get_bloginfo('admin_email').'>',
			        	"Content-Type: text/html"
			  			);
			  			$h = implode("\r\n",$headers) . "\r\n";
						if(wp_mail($email, $subject, $message,$h))
						{
							echo '<script>alert("Subscription code has been successfully installed .Please check again!")</script>';	
						}
	}							
}

?>